/*
 * Automat1.h
 *
 *  Created on: Apr 8, 2010
 *      Author: Stefan Obermeier
 */

#ifndef AUTOMAT1_H_
#define AUTOMAT1_H_

#include "Automat.h"

class Automat1: public Automat {
	int eingabealphabet;	// Wird anhand des Eingabealphabets berechnet
	int zustaende;			// Anzahl der Zustaende des Automaten

	char* alphabet;		// Eingabealphabet des Automaten

	int** uebergaenge;		// Struktur fuer Uebergaenge des Automaten

	char* signs;

	/*
	 *Definiert einen Uebergang mit den  Zeichen a...z und A...Z in den
	 *in eine anderen Zustand.
	 *
	 */

	void inizMixalpha(int zustand, int naechsteZustand);
	/*
	 *Definiert einen Uebergang mit den  Zeichen 0,1,2..9 in den
	 *in eine anderen Zustand.
	 *
	 */
	void inizDigit(int zustand, int naechsteZustand);
	/*
	 *Definiert einen Uebergang mit den  Zeichen 0,1,2..9 in den
	 *in eine anderen Zustand.
	 *
	 */
	void inizSigns(int zustand);


public:

	/**
	 * Gibt den neuen Zustand nach verarbeitung des uebergeben Zeichens zurueck.
	 */
	int uebergang(int zustand, char zeichen);

	void readChar(char a){}


	Automat1();
	virtual ~Automat1();
};

#endif /* AUTOMAT1_H_ */
